package com.bjut.service;

import java.util.List;

import com.bjut.dao.AttendanceInfoDao;
import com.bjut.dao.CandidateDao;
import com.bjut.dao.DepartmentDao;
import com.bjut.dao.DetailInfoDao;
import com.bjut.dao.EmployeeDao;
import com.bjut.dao.PositionDao;
import com.bjut.dao.RPDetailDao;
import com.bjut.dao.SalaryDao;
import com.bjut.dao.TrainDao;
import com.bjut.dao.TrainRecordDao;
import com.bjut.dao.UserDao;
import com.bjut.dao.searchInterface;
import com.bjut.domain.Department;
import com.bjut.domain.DetailInfo;
import com.bjut.domain.Employee;
import com.bjut.domain.Position;
import com.bjut.domain.User;
import com.bjut.exception.HRglxtException;

public interface HRglxtService {

	public abstract searchInterface getSearch();

	public abstract void setSearch(searchInterface search);

	public abstract void setMsg(String msg);

	public abstract void setUserDao(UserDao userDao);

	public abstract EmployeeDao getEmployeeDao();

	public abstract void setEmployeeDao(EmployeeDao employeeDao);

	public abstract DetailInfoDao getDetailInfoDao();

	public abstract void setDetailInfoDao(DetailInfoDao detailInfoDao);

	public abstract void setDepartmentDao(DepartmentDao departmentDao);

	public abstract void setPositionDao(PositionDao positionDao);

	public abstract AttendanceInfoDao getAttendanceInfoDao();

	public abstract void setAttendanceInfoDao(
			AttendanceInfoDao attendanceInfoDao);

	public abstract CandidateDao getCandidateDao();

	public abstract void setCandidateDao(CandidateDao candidateDao);

	public abstract RPDetailDao getRpDetailDao();

	public abstract void setRpDetailDao(RPDetailDao rpDetailDao);

	public abstract SalaryDao getSalaryDao();

	public abstract void setSalaryDao(SalaryDao salaryDao);

	public abstract TrainDao getTrainDao();

	public abstract void setTrainDao(TrainDao trainDao);

	public abstract TrainRecordDao getTrainRecordDao();

	public abstract void setTrainRecordDao(TrainRecordDao trainRecordDao);
	public boolean addEmployee(Employee employee) throws HRglxtException;
	
	public int getEmployeeCount() throws HRglxtException;
	public int getEmployeeCountByDepartment(int department_id) throws HRglxtException;
	public List<Employee> listEmployee(int pageNo) throws HRglxtException;
	public List<Employee> listEmployeeByDepartment(int department_id,int pageNo) throws HRglxtException;
	
	int PAGE_SIZE=5;
	UserDao getUserDao();
	DepartmentDao getDepartmentDao();
	PositionDao getPositionDao();
	public String getMsg();
	public boolean addUser(User user) throws HRglxtException;
	public User login(String username,String password) throws HRglxtException;
	public int getUserCount() throws HRglxtException;
	public List<User> listUser(int pageNo) throws HRglxtException;
	public int getPageCount(int count , int pageSize);
	public boolean deleteUser(int id) throws HRglxtException;
	public boolean addDepartment(Department department) throws HRglxtException;
	public int getDepartmentCount() throws HRglxtException;
	public List<Department> listDepartment(int pageNo) throws HRglxtException;
	public boolean addPosition(Position position) throws HRglxtException;
	public boolean addPosition(Position position,int department_id) throws HRglxtException;
	public int getPositionCount() throws HRglxtException;
	public int getPositionCountByDepartment(int department_id) throws HRglxtException;
	public List<Position> listPosition(int pageNo) throws HRglxtException;
	public List<Position> listPositionByDepartment(int department_id,int pageNo) throws HRglxtException;

	public boolean addEmployee(Employee employee, int department_id,
			int position_id,DetailInfo di) throws HRglxtException;
	
	public int getAttendanceInfoCount() throws HRglxtException;
	public int getAttendanceInfoCountByDepartment(int department_id) throws HRglxtException;
	/*public List<Position> listAttendanceInfo(int pageNo) throws HRglxtException;
	public List<Position> listAttendanceInfoByDepartment(int department_id,int pageNo) throws HRglxtException;*/
	
}

